home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / netBoot.new / sys / ktab.s2.c < prev    next >
C/C++ Source or Header  |  1990-12-19  |  4KB  |  101 lines

  1.  
  2. /*
  3.  * @(#)ktab.s2.c 1.1 86/09/27
  4.  * Copyright (c) 1986 by Sun Microsystems, Inc.
  5.  */
  6.  
  7. /*
  8.  *    keytab.s2.c
  9.  *
  10.  *    This module contains the translation tables for the up-down encoded
  11.  *    Sun-2 keyboard.
  12.  *
  13.  *    A fuller explanation of the entries is in keyboard.h.
  14.  *
  15.  *    Note that the "break" key is defined as a meta key; it turns on the
  16.  *    0x80 bit of the returned character.  The "upper left" key turns on the 
  17.  *    0x100 bit, which is ignored by most callers since they expect only a
  18.  *    byte.  NOTE that UpperLeft-A, pressed in that order with nothing else
  19.  *    in between, aborts whatever program is running, and never passes on
  20.  *    the A to the user program.
  21.  */
  22.  
  23. #include "../h/keyboard.h"
  24.  
  25. /* handy way to define control characters in the tables */
  26. #define    c(char)    (char&0x1F)
  27.  
  28. /* Unshifted keyboard table for Sun-2 keyboard */
  29.  
  30. static struct keymap keytab_s2_lc[1] = {
  31. /*  0 */    HOLE,    BUCKYBITS+SYSTEMBIT,
  32.                 OOPS,    OOPS,    HOLE,    OOPS,    OOPS,    OOPS,
  33. /*  8 */    OOPS,     OOPS,     OOPS,    OOPS,    OOPS,    OOPS,    OOPS,    OOPS,
  34. /* 16 */    OOPS,     OOPS,     OOPS,    ALT,    HOLE,    OOPS,    OOPS,    OOPS,
  35. /* 24 */    HOLE,     OOPS,     OOPS,    OOPS,    HOLE,    c('['),    '1',    '2',
  36. /* 32 */    '3',    '4',    '5',    '6',    '7',    '8',    '9',    '0',
  37. /* 40 */    '-',    '=',    '`',    '\b',    HOLE,    OOPS,    OOPS,    OOPS,
  38. /* 48 */    HOLE,    OOPS,    OOPS,    OOPS,    HOLE,    '\t',    'q',    'w',
  39. /* 56 */    'e',    'r',    't',    'y',    'u',    'i',    'o',    'p',
  40. /* 64 */    '[',    ']',    0x7F,    HOLE,    OOPS,    STRING+UPARROW,
  41.                                 OOPS,    HOLE,
  42. /* 72 */    OOPS,    OOPS,    OOPS,    HOLE,    SHIFTKEYS+LEFTCTRL,
  43.                             'a',     's',    'd',
  44. /* 80 */    'f',    'g',    'h',    'j',    'k',    'l',    ';',    '\'',
  45. /* 88 */    '\\',    '\r',    HOLE,    STRING+LEFTARROW,
  46.                         OOPS,    STRING+RIGHTARROW,
  47.                                 HOLE,    OOPS,
  48. /* 96 */    OOPS,    OOPS,    HOLE,    SHIFTKEYS+LEFTSHIFT,
  49.                         'z',    'x',    'c',    'v',
  50. /*104 */    'b',    'n',    'm',    ',',    '.',    '/',    SHIFTKEYS+RIGHTSHIFT,
  51.                                     '\n',
  52. /*112 */    OOPS,    STRING+DOWNARROW,
  53.                 OOPS,    HOLE,    HOLE,    HOLE,    HOLE, CAPSLOCK,
  54. /*120 */    BUCKYBITS+METABIT,
  55.             ' ',    BUCKYBITS+METABIT,
  56.                     HOLE,    HOLE,    HOLE,    ERROR,    IDLE,
  57. };
  58.  
  59. /* Shifted keyboard table for Sun-2 keyboard */
  60.  
  61. static struct keymap keytab_s2_uc[1] = {
  62. /*  0 */    HOLE,    BUCKYBITS+SYSTEMBIT,
  63.                 OOPS,    OOPS,    HOLE,    OOPS,    OOPS,    OOPS,
  64. /*  8 */    OOPS,     OOPS,     OOPS,    OOPS,    OOPS,    OOPS,    OOPS,    OOPS,
  65. /* 16 */    OOPS,     OOPS,     OOPS,    ALT,    HOLE,    OOPS,    OOPS,    OOPS,
  66. /* 24 */    HOLE,     OOPS,     OOPS,    OOPS,    HOLE,    c('['),    '!',    '@',
  67. /* 32 */    '#',    '$',    '%',    '^',    '&',    '*',    '(',    ')',
  68. /* 40 */    '_',    '+',    '~',    '\b',    HOLE,    OOPS,    OOPS,    OOPS,
  69. /* 48 */    HOLE,    OOPS,    OOPS,    OOPS,    HOLE,    '\t',    'Q',    'W',
  70. /* 56 */    'E',    'R',    'T',    'Y',    'U',    'I',    'O',    'P',
  71. /* 64 */    '{',    '}',    0x7F,    HOLE,    OOPS,    STRING+UPARROW,
  72.                                 OOPS,    HOLE,
  73. /* 72 */    OOPS,    OOPS,    OOPS,    HOLE,    SHIFTKEYS+LEFTCTRL,
  74.                             'A',     'S',    'D',
  75. /* 80 */    'F',    'G',    'H',    'J',    'K',    'L',    ':',    '"',
  76. /* 88 */    '|',    '\r',    HOLE,    STRING+LEFTARROW,
  77.                         OOPS,    STRING+RIGHTARROW,
  78.                                 HOLE,    OOPS,
  79. /* 96 */    OOPS,    OOPS,    HOLE,    SHIFTKEYS+LEFTSHIFT,
  80.                         'Z',    'X',    'C',    'V',
  81. /*104 */    'B',    'N',    'M',    '<',    '>',    '?',    SHIFTKEYS+RIGHTSHIFT,
  82.                                     '\n',
  83. /*112 */    OOPS,    STRING+DOWNARROW,
  84.                 OOPS,    HOLE,    HOLE,    HOLE,    HOLE, CAPSLOCK,
  85. /*120 */    BUCKYBITS+METABIT,
  86.             ' ',    BUCKYBITS+METABIT,
  87.                     HOLE,    HOLE,    HOLE,    ERROR,    IDLE,
  88. };
  89.  
  90. /* Index to keymaps for Sun-2 keyboard */
  91. static struct keyboard keyindex_s2 [1] = {
  92.     keytab_s2_lc, keytab_s2_uc, 0, 0, 0,
  93.     0x0000,        /* Shift bits which stay on with idle keyboard */
  94.     0x0000,        /* Bucky bits which stay on with idle keyboard */
  95. };
  96.  
  97. /***************************************************************************/
  98. /*   Index table for the whole shebang                       */
  99. /***************************************************************************/
  100. struct keyboard *keytables[] = { keyindex_s2 };
  101.